080f8695218632c0200d1996de33e9ba1a2b7468,changematrix/src/main/java/it/geosolutions/jaiext/changematrix/ChangeMatrixOpImage.java,ChangeMatrixOpImage,shortLoop,#number#number#number#number#number#number#number#number[]#number[][]#number#number#number[]#number[][]#number#number#number[]#number[][]#,454
Before Change
if(before > pixelMultiplier || after > pixelMultiplier){
throw new IllegalArgumentException("PixelMultiplier should be bigger than the maximum class");
}else if(processing > Short.MAX_VALUE){
throw new RuntimeException("The processing result is bigger than the maximum allowed value");
}
d[dstPixelOffset] = (short) (processing);
final int x = src1MinX + (src1PixelOffset % src1LineStride) / src1PixelStride;
final int y = src1MinY + (src1PixelOffset / src1LineStride);
if (roi == null || roi.contains(x, y)) {
result.registerPair(s1[src1PixelOffset], s2[src2PixelOffset]);
} else {
// we of course use 0 as NoData
After Change
final int x = src1MinX + (src1PixelOffset % src1LineStride) / src1PixelStride;
final int y = src1MinY + (src1PixelOffset / src1LineStride);
if (roi == null || roi.contains(x, y)) {
result.registerPair(s1[src1PixelOffset], s2[src2PixelOffset]);
// If the pixel is inside the ROI, it is processed following the operation: REFERENCE_CLASS + PIXEL_MUL*SOURCE_CLASS
int processing = before + pixelMultiplier * after;
// Check if the processing is an allowed value
if (processing > Short.MAX_VALUE || processing < Short.MIN_VALUE) {
throw new RuntimeException(
"The processing result is not an allowed value for the final data type");
}